Deployment Matrix
| # |
FILE |
CF PROJECT |
SUBDOMAIN |
| 01 | HLP Private Client.html | hlp-private-client | private.hlpcredit.com |
| 02 | HLP Private Wealth.html | hlp-private-wealth | pwm.hlpcredit.com |
| 03 | HLP Family Office.html | hlp-family-office | familyoffice.hlpcredit.com |
| 04 | HLP Institutional Capital.html | hlp-institutional-capital | institutional.hlpcredit.com |
| 05 | HLP Capital Advisory.html | hlp-capital-advisory | capital.hlpcredit.com |
Prerequisites
- Cloudflare account with Pages enabled
- Wrangler CLI installed (
npm install -g wrangler)
- Cloudflare account API token with Pages · Edit permissions
- hlpcredit.com managed inside the same Cloudflare account
- All 5 portal HTML files exported as
index.html in per-portal build directories
1. Prepare each portal build directory
Each portal needs its own build directory containing an index.html plus its shared assets. Repeat this for all 5 portals:
$ mkdir -p deploys/hlp-private-client
$ cp "HLP Complete Brand Library/30 · Subdomains/HLP Private Client.html" deploys/hlp-private-client/index.html
$ cp -R "HLP Complete Brand Library/00 · Brand System" deploys/hlp-private-client/00-brand-system
$ cp -R "HLP Complete Brand Library/01 · Photos of Chekelah" deploys/hlp-private-client/01-photos
$ cp "HLP Complete Brand Library/brand.css" deploys/hlp-private-client/brand.css
# Repeat for hlp-private-wealth, hlp-family-office, hlp-institutional-capital, hlp-capital-advisory
Note: When mirroring the folders under simpler flat paths (e.g. 00-brand-system/), update the portal HTML's <link href> and image src paths accordingly. Alternatively, keep the section-numbered folder names — Cloudflare Pages serves URL-encoded spaces without issue.
2. Deploy each portal to Cloudflare Pages
Using Wrangler CLI:
$ wrangler pages deploy deploys/hlp-private-client --project-name hlp-private-client
$ wrangler pages deploy deploys/hlp-private-wealth --project-name hlp-private-wealth
$ wrangler pages deploy deploys/hlp-family-office --project-name hlp-family-office
$ wrangler pages deploy deploys/hlp-institutional-capital --project-name hlp-institutional-capital
$ wrangler pages deploy deploys/hlp-capital-advisory --project-name hlp-capital-advisory
Each deploy returns a *.pages.dev URL. Verify each portal renders correctly before adding custom domains.
3. Bind custom subdomains
In the Cloudflare dashboard, for each Pages project:
- Navigate to Workers & Pages → [project-name] → Custom domains
- Click Set up a custom domain
- Enter the target subdomain (e.g.
private.hlpcredit.com)
- Cloudflare auto-creates the CNAME record inside the hlpcredit.com zone
- Wait for the DNS record to propagate (typically < 60 seconds within CF)
- Verify SSL provisions automatically via Cloudflare Universal SSL
4. DNS records generated (verification)
After binding, hlpcredit.com will contain these CNAME records (auto-managed by Pages):
private CNAME hlp-private-client.pages.dev
pwm CNAME hlp-private-wealth.pages.dev
familyoffice CNAME hlp-family-office.pages.dev
institutional CNAME hlp-institutional-capital.pages.dev
capital CNAME hlp-capital-advisory.pages.dev
5. Post-deploy checklist
- Each subdomain resolves and serves the correct portal HTML
- SSL certificate is active (padlock in browser)
- Meta tags render correctly on social preview (LinkedIn, Twitter)
- Logo and photos load (check DevTools Network tab for 404s)
- Cross-portal navigation links resolve to correct sibling subdomains — update anchor
hrefs from relative paths to absolute cross-subdomain URLs if needed
- Analytics tag installed on each portal (GA4, Cloudflare Web Analytics, or PostHog)
- Robots.txt configured to allow indexing of top-tier portals (private, pwm, capital) and disallow indexing of institutional/family-office if desired
6. CI/CD via GitHub
For ongoing deploys, connect each Cloudflare Pages project to a GitHub repo:
- Push
deploys/hlp-* directories to their own repos or subdirectories of one repo
- Connect the repo to the Cloudflare Pages project (Settings → Builds & deployments → Connect Git)
- Set root directory to the portal-specific folder if using a monorepo
- Every push to
main auto-deploys to the corresponding *.pages.dev and custom subdomain
7. Security & access controls
For Tier-04 (Institutional) and Tier-05 (Capital Advisory) portals — where discretion is a deliverable — consider:
- Cloudflare Access · gate portals behind SSO or email OTP
- Cloudflare WAF · block traffic from non-target regions
- Turnstile · CAPTCHA on booking-request mailto anchors converted to forms
- Rate limiting · protect against form abuse